﻿DECLARE @CurrentMigration [nvarchar](max)

IF object_id('[dbo].[__MigrationHistory]') IS NOT NULL
    SELECT @CurrentMigration =
        (SELECT TOP (1) 
        [Project1].[MigrationId] AS [MigrationId]
        FROM ( SELECT 
        [Extent1].[MigrationId] AS [MigrationId]
        FROM [dbo].[__MigrationHistory] AS [Extent1]
        WHERE [Extent1].[ContextKey] = N'CaltechSoft.Service.Migrations.Configuration'
        )  AS [Project1]
        ORDER BY [Project1].[MigrationId] DESC)

IF @CurrentMigration IS NULL
    SET @CurrentMigration = '0'

IF @CurrentMigration < '201405180557277_Quote'
BEGIN



IF  EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_dbo.AspNetUserClaims_dbo.AspNetUsers_UserId]') AND parent_object_id = OBJECT_ID(N'[dbo].[AspNetUserClaims]'))
ALTER TABLE [dbo].[AspNetUserClaims] DROP CONSTRAINT [FK_dbo.AspNetUserClaims_dbo.AspNetUsers_UserId]

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[AspNetUserClaims]') AND type in (N'U'))
DROP TABLE [dbo].[AspNetUserClaims]

IF  EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_dbo.AspNetUserLogins_dbo.AspNetUsers_UserId]') AND parent_object_id = OBJECT_ID(N'[dbo].[AspNetUserLogins]'))
ALTER TABLE [dbo].[AspNetUserLogins] DROP CONSTRAINT [FK_dbo.AspNetUserLogins_dbo.AspNetUsers_UserId]

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[AspNetUserLogins]') AND type in (N'U'))
DROP TABLE [dbo].[AspNetUserLogins]

IF  EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_dbo.AspNetUserRoles_dbo.AspNetRoles_RoleId]') AND parent_object_id = OBJECT_ID(N'[dbo].[AspNetUserRoles]'))
ALTER TABLE [dbo].[AspNetUserRoles] DROP CONSTRAINT [FK_dbo.AspNetUserRoles_dbo.AspNetRoles_RoleId]

IF  EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_dbo.AspNetUserRoles_dbo.AspNetUsers_UserId]') AND parent_object_id = OBJECT_ID(N'[dbo].[AspNetUserRoles]'))
ALTER TABLE [dbo].[AspNetUserRoles] DROP CONSTRAINT [FK_dbo.AspNetUserRoles_dbo.AspNetUsers_UserId]

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[AspNetUserRoles]') AND type in (N'U'))
DROP TABLE [dbo].[AspNetUserRoles]

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[AspNetUsers]') AND type in (N'U'))
DROP TABLE [dbo].[AspNetUsers]

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[AspNetRoles]') AND type in (N'U'))
DROP TABLE [dbo].[AspNetRoles]

    IF object_id(N'[dbo].[FK_dbo.Quotes_dbo.Customer_CompanyId]', N'F') IS NOT NULL
        ALTER TABLE [dbo].[Quotes] DROP CONSTRAINT [FK_dbo.Quotes_dbo.Customer_CompanyId]
   -- ALTER TABLE [dbo].[Customer] DROP CONSTRAINT [PK_dbo.Customer]
    CREATE TABLE [dbo].[QuoteItems] (
        [Id] [int] NOT NULL IDENTITY,
        [Quantity] [int] NOT NULL,
        [UnitPrice] [bigint] NOT NULL,
        [EquipmentId] [int] NOT NULL,
        [QuoteId] [int] NOT NULL,
        [CreatedBy] [int] NOT NULL,
        [CreatedDate] [datetime],
        [UpdatedDate] [datetime],
        [UpdatedBy] [int] NOT NULL,
        CONSTRAINT [PK_dbo.QuoteItems] PRIMARY KEY ([Id])
    )
    CREATE INDEX [IX_EquipmentId] ON [dbo].[QuoteItems]([EquipmentId])
    CREATE INDEX [IX_QuoteId] ON [dbo].[QuoteItems]([QuoteId])
    CREATE TABLE [dbo].[Quotes] (
        [Id] [int] NOT NULL IDENTITY,
        [QuoteDate] [datetime],
        [ServiceCharges] [bigint] NOT NULL,
        [Tax] [bigint] NOT NULL,
        [CompanyId] [int] NOT NULL,
        [SalesmanId] [int] NOT NULL,
        [CreatedBy] [int] NOT NULL,
        [CreatedDate] [datetime],
        [UpdatedDate] [datetime],
        [UpdatedBy] [int] NOT NULL,
        [Salesman_Id] [nvarchar](128),
        CONSTRAINT [PK_dbo.Quotes] PRIMARY KEY ([Id])
    )
    CREATE INDEX [IX_CompanyId] ON [dbo].[Quotes]([CompanyId])
    CREATE INDEX [IX_Salesman_Id] ON [dbo].[Quotes]([Salesman_Id])
    CREATE TABLE [dbo].[AspNetUsers] (
        [Id] [nvarchar](128) NOT NULL,
        [Tel] [nvarchar](max),
        [FirstName] [nvarchar](max),
        [LastName] [nvarchar](max),
        [BillingAddress] [nvarchar](max),
        [BillingPOBox] [nvarchar](max),
        [BillingZipCode] [nvarchar](max),
        [BillingCity] [nvarchar](max),
        [BillingCountry] [nvarchar](max),
        [IsDeleted] [bit] NOT NULL,
        [Email] [nvarchar](256),
        [EmailConfirmed] [bit] NOT NULL,
        [PasswordHash] [nvarchar](max),
        [SecurityStamp] [nvarchar](max),
        [PhoneNumber] [nvarchar](max),
        [PhoneNumberConfirmed] [bit] NOT NULL,
        [TwoFactorEnabled] [bit] NOT NULL,
        [LockoutEndDateUtc] [datetime],
        [LockoutEnabled] [bit] NOT NULL,
        [AccessFailedCount] [int] NOT NULL,
        [UserName] [nvarchar](256) NOT NULL,
        CONSTRAINT [PK_dbo.AspNetUsers] PRIMARY KEY ([Id])
    )
    CREATE UNIQUE INDEX [UserNameIndex] ON [dbo].[AspNetUsers]([UserName])
    CREATE TABLE [dbo].[AspNetUserClaims] (
        [Id] [int] NOT NULL IDENTITY,
        [UserId] [nvarchar](128) NOT NULL,
        [ClaimType] [nvarchar](max),
        [ClaimValue] [nvarchar](max),
        CONSTRAINT [PK_dbo.AspNetUserClaims] PRIMARY KEY ([Id])
    )
    CREATE INDEX [IX_UserId] ON [dbo].[AspNetUserClaims]([UserId])
    CREATE TABLE [dbo].[AspNetUserLogins] (
        [LoginProvider] [nvarchar](128) NOT NULL,
        [ProviderKey] [nvarchar](128) NOT NULL,
        [UserId] [nvarchar](128) NOT NULL,
        CONSTRAINT [PK_dbo.AspNetUserLogins] PRIMARY KEY ([LoginProvider], [ProviderKey], [UserId])
    )
    CREATE INDEX [IX_UserId] ON [dbo].[AspNetUserLogins]([UserId])
    CREATE TABLE [dbo].[AspNetUserRoles] (
        [UserId] [nvarchar](128) NOT NULL,
        [RoleId] [nvarchar](128) NOT NULL,
        CONSTRAINT [PK_dbo.AspNetUserRoles] PRIMARY KEY ([UserId], [RoleId])
    )
    CREATE INDEX [IX_UserId] ON [dbo].[AspNetUserRoles]([UserId])
    CREATE INDEX [IX_RoleId] ON [dbo].[AspNetUserRoles]([RoleId])
    CREATE TABLE [dbo].[AspNetRoles] (
        [Id] [nvarchar](128) NOT NULL,
        [Name] [nvarchar](256) NOT NULL,
        CONSTRAINT [PK_dbo.AspNetRoles] PRIMARY KEY ([Id])
    )
    CREATE UNIQUE INDEX [RoleNameIndex] ON [dbo].[AspNetRoles]([Name])
    
    
     DECLARE @var1 nvarchar(128)
    SELECT @var1 = name
    FROM sys.default_constraints
    WHERE parent_object_id = object_id(N'dbo.Customer')
    AND col_name(parent_object_id, parent_column_id) = 'CustomerId';
    IF @var1 IS NOT NULL
        EXECUTE('ALTER TABLE [dbo].[Customer] DROP CONSTRAINT [' + @var1 + ']')
    ALTER TABLE [dbo].[Customer] DROP COLUMN [CustomerId]
    DECLARE @var2 nvarchar(128)
    SELECT @var2 = name
    FROM sys.default_constraints
    WHERE parent_object_id = object_id(N'dbo.Customer')
    AND col_name(parent_object_id, parent_column_id) = 'CustomerName';
    IF @var2 IS NOT NULL
        EXECUTE('ALTER TABLE [dbo].[Customer] DROP CONSTRAINT [' + @var2 + ']')
    ALTER TABLE [dbo].[Customer] DROP COLUMN [CustomerName]
    DECLARE @var3 nvarchar(128)
    SELECT @var3 = name
    FROM sys.default_constraints
    WHERE parent_object_id = object_id(N'dbo.Customer')
    AND col_name(parent_object_id, parent_column_id) = 'ContactPerson';
    IF @var3 IS NOT NULL
        EXECUTE('ALTER TABLE [dbo].[Customer] DROP CONSTRAINT [' + @var3 + ']')
        
        
    ALTER TABLE [dbo].[Customer] ADD [Id] [int] NOT NULL IDENTITY
    ALTER TABLE [dbo].[Customer] ADD [Name] [nvarchar](max)
    ALTER TABLE [dbo].[Customer] ADD [Tel] [nvarchar](max)
    ALTER TABLE [dbo].[Customer] ADD [Mobile] [nvarchar](max)
    ALTER TABLE [dbo].[Customer] ADD [ContactPersonName] [nvarchar](max)
    ALTER TABLE [dbo].[Customer] ADD [Email] [nvarchar](max)
    ALTER TABLE [dbo].[Customer] ADD CONSTRAINT [PK_dbo.Customer] PRIMARY KEY ([Id])
   
    ALTER TABLE [dbo].[Customer] DROP COLUMN [ContactPerson]
    ALTER TABLE [dbo].[QuoteItems] ADD CONSTRAINT [FK_dbo.QuoteItems_dbo.Equipment_EquipmentId] FOREIGN KEY ([EquipmentId]) REFERENCES [dbo].[Equipment] ([EquipmentId]) ON DELETE CASCADE
    ALTER TABLE [dbo].[QuoteItems] ADD CONSTRAINT [FK_dbo.QuoteItems_dbo.Quotes_QuoteId] FOREIGN KEY ([QuoteId]) REFERENCES [dbo].[Quotes] ([Id]) ON DELETE CASCADE
    ALTER TABLE [dbo].[Quotes] ADD CONSTRAINT [FK_dbo.Quotes_dbo.Customer_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [dbo].[Customer] ([Id]) ON DELETE CASCADE
    ALTER TABLE [dbo].[Quotes] ADD CONSTRAINT [FK_dbo.Quotes_dbo.AspNetUsers_Salesman_Id] FOREIGN KEY ([Salesman_Id]) REFERENCES [dbo].[AspNetUsers] ([Id])
    ALTER TABLE [dbo].[AspNetUserClaims] ADD CONSTRAINT [FK_dbo.AspNetUserClaims_dbo.AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE
    ALTER TABLE [dbo].[AspNetUserLogins] ADD CONSTRAINT [FK_dbo.AspNetUserLogins_dbo.AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE
    ALTER TABLE [dbo].[AspNetUserRoles] ADD CONSTRAINT [FK_dbo.AspNetUserRoles_dbo.AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE
    ALTER TABLE [dbo].[AspNetUserRoles] ADD CONSTRAINT [FK_dbo.AspNetUserRoles_dbo.AspNetRoles_RoleId] FOREIGN KEY ([RoleId]) REFERENCES [dbo].[AspNetRoles] ([Id]) ON DELETE CASCADE
    INSERT [dbo].[__MigrationHistory]([MigrationId], [ContextKey], [Model], [ProductVersion])
    VALUES (N'201405180557277_Quote', N'CaltechSoft.Service.Migrations.Configuration',  0x1F8B0800000000000400ED5DDD6EDCB815BE2FD07718CC555B643DFED9046960EFC2B193AED1C4F67A9C6DD11B4396685B88469A95345E1B459FAC177DA4BE424951A2F82F52A238E3741020F090E2471EF2F0F0F09087E7BFFFFECFE18F4F8B64F208F222CED2A3E9DECEEE7402D2308BE2F4FE68BA2AEFBE7B3BFDF187DFFFEEF043B4789AFCD27C7780BE8325D3E268FA5096CB77B359113E804550EC2CE230CF8AECAEDC09B3C52C88B2D9FEEEEE9F677B7B330021A6106B3239BC5AA565BC00D50FF8F3244B43B02C5741F2398B4052D4E930675EA14ECE8305289641088EA627415282F0618E6A9883FC310EC1CE0788563E7FFCDB0E042AC153399D1C277100DB3607C9DD7412A4695606256CF9BB2F0598977996DECF97302148AE9F97007E77172405A8297AD77E6E4ADCEE3E226ED6166CA0C25551660B4BC0BD83BAB7667CF15E7D3E25BD09FB13F714A2BAEA53D89D202FE3BB380C4A700ACA204E8AE984AFF6DD4992A3221D9D8FFFD811115F4D24E55E116E824C87FEC1AF5649B9CAC1510A56651E24AF2697ABDB240EFF0A9EAFB3AF203D4A5749425303E981794C024CBACCB3256CC2F315B853D278164D27331669C64311202D0AEE97B3B43CD89F4ECE610383DB041086A2FA705E6639F80B48410E01A2CBA02C410EF9E12C0255B709ED51D7DE5DAD31D4BC0CD228C8236BC8F3E031BEAF0853834F275720A9BE291EE2259E8C3477DCC878EF639E2DAEB28445927C79731DE4F700CEF4EBCCE8F379B6CAC37E74349DD4454FF39D395D9A123AFA74C564741ECEDA696F2A0C1C4A810D9AFE03E7FD9A26FC79D6540BD72EB8304F279F83A74F20BD2F1F8EA6F04FC85DF113889A94BA295FD218AEE3B05099AFBA654235D8201F2A5B3EFCBA8A970B48E1602195A5518CFAF10A84207E0494881AAF13DA3A2123A65EEABC068B25E210C8F8A3D785C5D723F869B588A38A05C7EED020896FF36A3A9C3C87C9F81452159E56420CD787FEBE86FAA635179E4365F274059C60D5131A44EFC7EFF86B286DE1F771908E5ED5CF506B87BC7496164B104291377A859F837475178468C68C5FD92928C23C5E62E57B6CC2D0DEE77CB5B8F540175C85E1EEC753659717BE2ACAB310443E44E9715180D2135557708F977F2DC6179E39409A4A2B9E7AAEDC18462E33F545BF2CA38145AD1B6FB201204AFC98FB99467137DCCF34DB83A17A7EBBB971A6EF37901BA4F7D3FBDC01FABFF976D9DD3EA0A9D3C326C0EBCAFACDAE76AEF4C56B5094576099E5BED699ADFC1F26FFDDDA7F34EB8189D9A8DFBA505B01062F0635CEBA57803EE2DEA76C47FF8FAFAA46510E8AF1D5C76B907858346E631F66842C2DE13A7809F9344BBD0CD287059CBD5B09EF5CC21B8B3E62B81C2AFB08D0BA851F638AB5958216765C77E2706BD97969BAEED6B2B395C7E3C8E39F575909CE4AB0182A8F09D0BAE5F1A62BA33FAF82FABB21BC08F9BFBCCCE31050306FBE5FDF39221EFEA18791FF77F354B733A65425C98698CCB71BEABB76F72BC916B6BAB26F64FB5A5D232B0C75036F107C21340C270B772FE8BC41172CEA563990685B696630EFFB4C97BA2B4F1E100F14C3A4D835D21286009C648B65903E0F955FF3200105E4B7AD1C746A21C483A31132E40B5ECCD41972C947726D655E2DD3FAC93C7953587968DA9086DF346D693FE19BD3E4285A44B207593ABF14C3AD9C08E3658B61C9C6666FFFADD1C6C6FA30637CEBD6C7382F4A2FD6BA4F81A78ADEC74902917D9970EBEA2E2FDE674FBE2AFB47BC3C81657C5577E2E3DE5B5357B64ACB7CFCEACE8A539000B8B63535BDCFA0C044B2D576D7D56185DE7FFDC695ADFB244BEFE27C31BCCD974151FC96E5D14F41F1E0C1B816AE72C841F332582CC7377A3D6429F065606BEB723634D7BF651F037427F0438A4A0DC6FB94855FB355F921ADF4BF2F6568AB02120027CD390E4328943F4266065135D5075A4EA03AD1B1A898CEBFFE2A6D12C40A151235EFA6C96F75362A5950D8E83C5B15F253761FA79A9634F95C4B70B2BC25759E6D4B1082A6217536D78E2A55DE0C9C35487B6D36C108AFEA5F9D2AFB9938871D17CB7350EE34A51B8536879850827EDD11605F4D8C0BB73AEFBEA9CE7BB0777B77F0F6F59B203A78F33D3878FD2D9A215057AE43DFAE860F553AFE1906AAE9972059B9AEAAD76CA8E6B8FBD950C16EFE6CA89A09931FE308A90CB3EE12CDC710DEE8FB869F6DE71CD732DFD38121D377E57E6440AFE982D622F7B305A16EFE6491B3B2F45344501FAE5F97F46FDABB611CE79EDB5E06A7BD1423DDBA771F68BAC8356D7ABC6FEACF5A8D5BCC15346FC9278334F06B900FBE998030D66D3F466DE8C39E4D395F7A34AACF8BC5D5E7B530E69EC42908E345904C279739FCAB7E8E054EF37918A01EDDEF3602562C513CD81A36543C7F5C14591857A3275E8997DD71679BF7218D26768E4FB8B3B94BF5B0DB21EBC74BC8ECB08DB04BA63C535FA4D8FA39390EF1132B2741110691D8FB90CEA8671BC98500691BC9257FB6A97F125A00E71DC811C307C8FE59C0991CA7A53849E3348C974162D57D1C8A74B26B1F42401D44AAE6734EC112A468AA5A7597933691AAB9C1ECEACBC319C5C0C67CADF3E130E01D23870E290FB57E78BEF9DDE81192F5F2BD41B75AF29ADA21B0EF3C30E846A76DF4302F6457B9540CA5BDD7D5720F75ADB38B69F4D812CEA4EE9B8D38877AF1B2860213A6D05CE5B76257CD203968862F8E24D76AB4FC22DEB1E1B8D09A03857B39B454249E731BC97A7CD34D46DB05AFF183602401DB3B6F6BE4317C574ACF0FDCC5A90EFE1A692597DE5BED257007B017D313DE988B21DAA45672197C2D8C459FA0AA46537A9CDA8E26BEB6E685AF6487B7544B244790A3F097A4433CF0978478935A9526656FEC551F8B6B07953F235F1F7B7127F20AF6AACFF4C6632FB6437CB1174BFCCB602F7CD9413BA6DCCD87F531177BCF42C15BF848623CD6627AC3176731946F3C6371F7C1F57A8E78397CB0562F5C28EFE0D9DD9D9D3DDE826A4CACE42043D53ADDA986C8CC32461E697669CE52FCCF32752F79986DEA9E30A95C7EAA3CCAACC316FEEA598B380579B3D3C2474FE4D174E1380B92549F6815F58906CF1308760E4AD178559BBED0D5B8F6784163421426A912B903D106AAB1B07540B6B6D92EE8DA0A20C52316820E10626591A15036AE0E186AE327A050792628B286D4C2B6A3787D542B94C672B5A3B0B0C5902149F62116B0CD2D522D6CAD7F5AC0D67742B5A85826768076011981A0B35319083EC3E60A5302443A65A48F5B5185CC9E45E4259EF56121A191170D8230B53EE3934353F28C5F2AD92EB3EB4EED9B61DA6E353EA952F581C95995BC2F28B169D6DD26474CE377BBD4335DECE3CE530FE3730F8A24A5C4353EE8A0C0E815C24DAFB49EAA8AFE90DBDC0DACEE7C1FE879466E67A759A35D611D515E3BC5AAE896D8813B2DC17D68660DB8269CD38362C68743A45869A0EC345152EDAD977C0DC132CB2205205BF6DD50DEACF60ACA65B6B34EEB993DE59CD14B4179D3563794D77A8482708955A7CBAE634F366B8E51505DB7D3D1D46E7DCC55B35B6E7530B13BF499E382A5A1AB177B502EBB292952DF658630354450044887CED46EE0881D9AAB6C64A34BF20E673892589D703853841C3BFC1C2C97717A4F8520AB5326F33AFED87773FB305C0B8C310B997EE6B7E5A4A632CB837BC0E5A293D108544EEEA74119DC06E822DF49B4103F63B7F58ACD41539966E72E0E65B383680AA3BF195B82362C9B6CE32F1A4A6AEC8FB00B908E53F506D06A8722C804458E0B9220EF7CD41719604EB264B548755FF05C6D548306BA37267D274881ADBB3684389FEB5FC1F8248CB260196439C896BFC6E5AB610CD58B93C61867F4DABB021365596052819D18402ADD1C8DB90144C369AF06695A278BF2C43453F6412FFC36A29302BFFDC01C9F89DE44E33219E6786284261A54CCB5E809211413D30D426E2F64FC2C9302F854629CD5E132B197684C26C37A76E117A024730B67D88C7D1B63891DFA36DD1C4D0CA344638AB9E6C8ECABBA342A9B638EC8F848D0804C86450BE9E7719906D219E678EC13B834209B638ED8BE734BA3B5A91648ED43B60C549B6C8EC53C554BA3311936D2A70E34C40A9D3AD162A6B5CFC431F3AC4DB6C69248163AC31C8F79408EC66332ACF1785AA9E44DD4C15A0BEE98BA1839371BA493A9517CE8CB4A194385E561240C95BE4E19BDF93255BAB6F758D7C53839EC6ACCE76EE5D84B9763E40CC0BDF06A0EE97B482C65515597F332C94E00A1FF39BD38105FC0D22190570519D5A149B49980093FE7123B518583BAB0520AA7596DF5F8982DDC468FCFB6D8F6E277F1980D2F4EDA0A93172E4CA8B354E7D244797E6C204E34657D1967B61BC7EDC6D10C6F2BDB3652B6B557079C8B3625B48168D3941D47556A239B7036B554F6F48876F0DBE826CCE0B7C9EBB3A513E736964885C79B1A673B993777328FA0A4E08BBC3D67B1BF194CA27908DC6D3BE67C800F6E9967F22C3641E84520661384126CB62FC4EB99DDB6289DA1351452E13E18EAA8F4AD3C78E1F240756B67A038A86EE6DB4B0379B17184C1507B0315278246A192CDB1DA481034549B6A8EC4877AA0F1F83C6BD43AA28304B3CEB14624611B249824CF1AF544D0D2980C7BBC2602830CB2C93347A5022D30ECDB26FBB529F1911404302ACF62A7C9445460369B4C8ECD92CB844D60575C26CBA295747004A69174462F3C458FCABFB0905B423804468809B91652480C8CC0882331BB07B6A4CD7C9E8505428C9DC0D821C46C8B459C045260D67092BA314BB8E4A6BBF3F55CF48FB35FDC0D30C659E91BBF747E1C2D15D8F62D7C46E56C932DB1EAD7EE05B03A7D23F94BE9DCE090BFB0A3E430FE5260A8A513F3AE3C2B9CB48FE1AB312FE9C7E2395BABFAB17C359E1D176F00AFA8FC411CB24AE5B83A8C53E410E38A92C6659FB920A570E35FDB508E3C7C0387CE6ED87C9D91AF69A8B06BB6F3A1AA3CBBED87485E4CBD0DC74F80B33B71D973E25D28E230B5A9EB3B5C94D8F9AD6DFCCCA3DCEC9691CAF0CF8EAC0795C4D04CF9CEF5B12753C58DECC6C84B4C66F2155CE6C49E32121B0446FEDE0A55BB75C394AFCDF49667DAF6108785C959819E75274FBA1B92CB7BCF89EC2138D1F19F10E6AC53C86FE244573BB0319E75558F203FB9AA278ADA998EF768C39FA047F0B1AA0569792E4AB0D8411FECCC7F4D4E92185D8A201F7C0ED2F80E14250E8330DDDFDD7D3B9D1C2771506057C7DA57EF1DFFB68D91F3DEDE0172DE03D162C617B777014428451131511AC4B8129DCF8E1B4575307162EB8EF12047C10F88C4680C3A633AD8062D038CE3145593F032D1591A81A7A3E93FAB92EF26677FBF610ABF9A5CE49039DE4D7627FF1AD20CFA6E70EFE6B42016CD328E44A2F45EB36695813CE28F39D0DD6A5C53FA18E4E14390FF61113CFD9186348A5C47B9C0510DB78D994B9FD6F787913ABAB92052E6E0E600977170738027FAB6B9205E706B730B8A8F1731263A212CAB18B4B651976877B681588C2B9B93516E7DD91CC0896E6C0E40D9CB880E00252180863590BE8CE8008FBD8BE800B0BD8EE802ACBD90E8008DB990E844CCD4DE6C2E04417B036280DCA72F3EA867BF497B983B0F4EA06C48EBA3B0C85DBBAC1517B507979502A350F65C2B32B487D8268ABF8D1757AE164BD1356C2B14D62614A4DE533EC26B8E32C7B1EDD2C5FAD75CF971A2CC258E0404F6CD72B33BE1BDB21CA0D6F768B6B3795DB359152ECC683A6BAEBF77CF6BD56EDCF504DF6E3AB69B8EAD1419578A28FC845EAC52D03A1CF5E702CAD30883DCC6F72EAD9606966DAAE820333B714DB2ABBE2E36CCC2BF9D90BD27E437331989EBD0B00EE75D86064DCBCA69681002E530647960D5141C34B36817A3C1536B3B3F3B7AF9463CCC311A6BAA3C3BDA5488FBBDFDB77ADA8CC586E81BE4436AB41DA226CAD04CE4662F49F91739406B5D8C1C80F1FE45EE206BF7227780C4B7C81DE489ABE346DEB1C80124E55AD42C0B3D943D993D849917FBAFDFF432B2507E30FD9BC77A1539D9AB323E452EF697B44F915B3C275D283A0FF5C792780B0D5BF2782FA1FE4D93B8050DD84A118720DB15B4295925BF9A9C157057F6EB0A665CC3DEE096516E660D51BF3BDC705EAC2ADE5CC3EFA1C8E0A2A63A8C99DAD8BA05B930FD507E41D670BD3843E24063C6191DFE329212973A7F18E330A3DDFCC7B5CCB17EC750E1187B9DACDD8B7B44EF0C33E6514690153F95FBCB7473C1668989868A1EADC1457D8E6CDF51DD901D58BF551A11BD86555A74A231EB6BB9EB4C777F37E5465CA05B6F9C0D3CE862ACE11108E3459020F700F85751DDF3DF830C877C3160F6BEFDF68B72D331D55B55AC224683B68992298FACC8845C66D2BD84829645AD943788648F12055A1F00467B796C600868A390463D1AE021F07A9F60A2FAF89EAAC16FF3FF5FB952F3147ECFAB8D9EB954DF100FDCDA19969562002ABE2B35EE54AA1736A4227752ADA05247613ADDA3C356976DAC184CF71EA875ADBEB8491ED496162424663B2D3E48A23F2E1239682C91A57E00DF647B60CF33667248FD0AA2476E918402B61FA76F4AD6988FA057F1A27CF4D60BB328A3287311719991C2095E58453423D30D91E48EC23A8A77269D738EC9FB5716E62C6F0C247BAF690319085B9B550C54E77E330CA47AE06A131948F20AD006F24F659954B10FCEFC66B847F170D286318F2E30BA2D03EDEEECEC09E3B52ED5D6D7909B2B451DAFD27818ECAE38F08AE8EDD2192B9BADDFB004E9780E6D332489EA6DBA11988B7B3488ECDCF890F5FC98D60F43891627629B6BADE91A031E7E38E8681ADD22B75A6C9B977D27082365FDFA8A3B6BB4A9AAB58FEAAA6CBFEAA8BAFDB0AB09C49421D64BB2A49591DC8E1A289B9B50059527AB83CAEEA884DAE60A955079B24A4876376BD46B93BC060D7A37325E3A05609C2CC33D2E96E7A0C4F2BA0B5CB2A1136A927CA3AFB6DEDEDAD45DEF05B475D7DFE8EBAE77463675E365405B35FE445F3356A94D2BEEA8B4AB42B3CAAAD366B1129C2C03C7391C2AFB249CD9E1E4842A24CAAACE83A489E2C0A621868F022C59C3F4073E7218D53AC0BD8A67D73DBAD3337D37199FBBA9C8E5570E65F0E44DEB3ED9718EA4AF3A4F7D184284D5860BA5A8EB046111E162953922999C39A888951F4A288E25E851522CC9B21D174FA033E2EA9554459AC482DEA7799EC78D36E84A4853DA7B25FB65AA853841439872E156BCC9EF88D066795510AA7C47DE0DA18C96A0781CDE11A1F502ABA053F588B61B3269DD40FEB0B9AB19D93EC4AB9A947253CF4062C7133412938584B42EC386C6B4211915D98878195BE12D5E927738C3DA5D9D007F0A6FEEC2CDFC2A450E1BF8D72928E2FB1602BD249C8290D9C6936FCED2BBACB126702D6A3EE1DF9B809A4104F7F8C74857404FBAA017198A224EEFA793EAFE3BF218BA05D1597AB12A97AB12BDB1B0B84D988BE3C82AA1ABFF7026B4F9F0A2BA4958B820013633463E2E17E9FB559C44A4DD1F2557FC1410C8DC515FBC446359A20B98F7CF04E93C4B0D81EAEE23561AF4DC6602C18A8B741E3C823E6D83ECF709DC07E1737B935E05D23D106CB71F9EC6C17D1E2C8A1AA32D0F7F421E8E164F3FFC0F409B9B076DFE0000 , N'6.1.0-30225')
END

